package com.weiliang.www;

import java.util.Scanner;

/**
 * @Author: liangWeiQUQ
 * @Description: 字符串有三种编辑操作:插入一个字符、
 *              删除一个字符或者替换一个字符。 给定两个字符串，
 *              编写一个函数判定它们是否只需要一次(或者零次)编辑。
 * @DateTime: 2021/3/9 19:57
 **/
public class oneEditAway {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入一个字符串");
        String first = scanner.nextLine();
        System.out.println("请输入第二个字符串");
        String second = scanner.nextLine();
        boolean b = oneEditAway(first, second);
        System.out.println("这个函数可以一次或者0次编辑就实现吗" + b);
    }

    static boolean oneEditAway(String first, String second) {
        int l1 = first.length();
        int l2 = second.length();
        if(Math.abs(l1-l2)>1) return false;
        if(l2>l1) return oneEditAway(second,first);
        //判断字符不相等的情况
        for (int i = 0; i < second.length(); i++) {
            if (first.charAt(i) != second.charAt(i)) {
                if (l1 == l2) {
                    return first.substring(i + 1).equals(second.substring(i + 1));
                } else {
                    first.substring(i + 1).equals(second.substring(i));
                }
            }

        }
        return true;
    }
}